<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"/>
<title>如何配置 web.xml</title><link href="../zdoc.css" rel="stylesheet" type="text/css"/><link href="../_rs/site.css" rel="stylesheet" type="text/css"/><script src="../_rs/jquery.js" language="Javascript"></script><script src="../_rs/site.js" language="Javascript"></script><script src="../_rs/z.js" language="Javascript"></script>
</head>
<body><a name="top"></a>
<div class="zdoc_header">如何配置 web.xml</div>
<div class="zdoc_author"><em>By:</em><b>zozoh</b><a href="mailto:zozohtnt@gmail.com">&lt;zozohtnt@gmail.com&gt;</a></div>
<div class="zdoc_body">
<ul class="zdoc_index_table">
<li>
<div><span class="num">1</span><a href="#在_webxml_中，一个比较典型的例子：">在 web.xml 中，一个比较典型的例子：</a></div>
</li>
<li>
<div><span class="num">2</span><a href="#比较传统的方式">比较传统的方式</a></div>
</li>
</ul>
<div class="hr"><b></b></div>
<h1><a name="在_webxml_中，一个比较典型的例子："></a>在 web.xml 中，一个比较典型的例子：</h1>
<div style="float:right;"><a href="#top">Top</a></div>
<p></p>
<pre>&lt;filter&gt;
    &lt;filter-name&gt;nutz&lt;/filter-name&gt;
    &lt;filter-class&gt;org.nutz.mvc.NutFilter&lt;/filter-class&gt;
    &lt;init-param&gt;
        &lt;param-name&gt;modules&lt;/param-name&gt;
        &lt;param-value&gt;com.mine.app.MainModule&lt;/param-value&gt;
    &lt;/init-param&gt;
&lt;/filter&gt;

&lt;filter-mapping&gt;
    &lt;filter-name&gt;nutz&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
</pre>
<p></p>
<ul type="disc">
<li>如果你没有声明 '<b>modules</b>' 参数，这个过滤器将不会映射 URL，但是它并不会抛异常</li>
<li>默认的，只要被正则式 <b> "^(.+[.])(jsp|png|gif|jpg|js|css|jspx|jpeg)$"</b> 匹配上的 URL 都不会被 Nutz 过滤器处理</li>
<li>你可以为 NutFilter 设置参数 "ignore"，来重新设置这个正则表达式</li>
<li>如果你的值是 "null" （不区分大小写），所有的请求都会转发到 Nutz.mvc 进行处理</li>
<li>如果 Nutz.mvc 没有找到合适入口函数处理,将会继续 chain.doFilter</li>
</ul>
<p>比如如果你想忽略所有的 .html 请求，你可以</p>
<pre>    &lt;filter&gt;
        &lt;filter-name&gt;nutz&lt;/filter-name&gt;
        &lt;filter-class&gt;org.nutz.mvc.NutFilter&lt;/filter-class&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;modules&lt;/param-name&gt;
            &lt;param-value&gt;com.mine.app.MainModule&lt;/param-value&gt;
        &lt;/init-param&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;ignore&lt;/param-name&gt;
            &lt;param-value&gt;^(.+[.])(jsp|png|gif|jpg|js|css|jspx|jpeg|html)$&lt;/param-value&gt;
        &lt;/init-param&gt;
    &lt;/filter&gt;
</pre>
<p>注意,如果你使用<a href="view.html">Forward视图</a>,请这样写filter-mapping</p>
<pre>&lt;filter-mapping&gt;
    &lt;filter-name&gt;nutz&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
    &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
&lt;/filter-mapping&gt;
</pre>
<p></p>
<h1><a name="比较传统的方式"></a>比较传统的方式</h1>
<div style="float:right;"><a href="#top">Top</a></div>
<pre>&lt;filter&gt;
    &lt;filter-name&gt;msgs&lt;/filter-name&gt;
    &lt;filter-class&gt;org.nutz.mvc.NutFilter&lt;/filter-class&gt;
    &lt;init-param&gt;
        &lt;param-name&gt;skip-mode&lt;/param-name&gt;
        &lt;param-value&gt;true&lt;/param-value&gt;
    &lt;/init-param&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
    &lt;filter-name&gt;msgs&lt;/filter-name&gt;
    &lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;

&lt;servlet&gt;
    &lt;servlet-name&gt;nutz&lt;/servlet-name&gt;
        &lt;servlet-class&gt;org.nutz.mvc.NutServlet&lt;/servlet-class&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;modules&lt;/param-name&gt;
            &lt;param-value&gt;your.package.MainModule&lt;/param-value&gt;
        &lt;/init-param&gt;
        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
    &lt;servlet-name&gt;nutz&lt;/servlet-name&gt;
    &lt;url-pattern&gt;*.nut&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;
</pre>
</div>
<div class="zdoc_footer"><em>By:</em><b>zozoh</b><a href="mailto:zozohtnt@gmail.com">&lt;zozohtnt@gmail.com&gt;</a></div>
</body>
</html>